home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / Dev / Oberon / examples.lha / Examples / Oberon0 / Edit0.Mod < prev    next >
Encoding:
Text File  |  1995-04-15  |  1.2 KB  |  41 lines

  1. MODULE Edit0;  (* HM Mar-25-92*)
  2. IMPORT OS, IO:=io, TextFrames0, Texts0, Viewers0;
  3.  
  4. PROCEDURE Open*;
  5.   VAR s: IO.Scanner; t: Texts0.Text; menu, cont: TextFrames0.Frame; v: Viewers0.Viewer;
  6.     f: OS.File; r: OS.Rider;
  7. BEGIN s.SetToParameters; s.Read;
  8.   IF s.class = IO.name THEN
  9.     menu := TextFrames0.NewMenu
  10.       ( s.str, "Viewers0.Close  Viewers0.Copy  Edit0.Store" );
  11.     NEW(t); f := OS.OldFile(s.str);
  12.     IF f = NIL THEN
  13.       t.Clear ELSE OS.InitRider(r); r.Set(f, 0); t.Load(r)
  14.     END;
  15.     cont := TextFrames0.New(t);
  16.     v := Viewers0.New(menu, cont)
  17.   END
  18. END Open;
  19.  
  20. PROCEDURE Store*;
  21.   VAR v: Viewers0.Viewer; s: IO.Scanner; f: OS.File; r: OS.Rider;
  22. BEGIN v := Viewers0.ViewerAt(TextFrames0.cmdFrame.y);
  23.   s.Set(v.menu(TextFrames0.Frame).text, 0); s.Read;
  24.   IF s.class = IO.name THEN
  25.     f := OS.NewFile(s.str); OS.InitRider(r); r.Set(f, 0);
  26.     v.Neutralize; v.cont(TextFrames0.Frame).text.Store(r); OS.Register(f)
  27.   END
  28. END Store;
  29.  
  30. PROCEDURE ChangeFont*;
  31.   VAR s: IO.Scanner; fnt: OS.Font; f: TextFrames0.Frame;
  32. BEGIN
  33.   s.SetToParameters; s.Read; TextFrames0.GetSelection(f);
  34.   IF (f # NIL) & (s.class = IO.name) THEN
  35.     fnt := OS.FontWithName(s.str);
  36.     f.text.ChangeFont(f.selBeg.pos, f.selEnd.pos, fnt)
  37.   END
  38. END ChangeFont;
  39.  
  40. END Edit0.
  41.